Selection Sort (Seçmeli Sıralama), dizi içerisindeki en küçük (veya en büyük) elemanı bulup, dizinin başına (veya sonuna) yerleştirme prensibine dayanan basit bir sıralama algoritmasıdır.
Algoritma, veri dizisini iki bölüme ayırır:
Her adımda:
function selectionSort(array) {
const n = array.length;
for (let i = 0; i < n - 1; i++) {
// En küçük elemanın indeksini bul
let minIndex = i;
for (let j = i + 1; j < n; j++) {
// Eğer daha küçük bir eleman bulunursa
if (array[j] < array[minIndex]) {
minIndex = j;
}
}
// Eğer en küçük eleman şu anki eleman değilse, yer değiştir
if (minIndex !== i) {
[array[i], array[minIndex]] = [array[minIndex], array[i]];
}
}
return array;
}
Selection Sort, kararsız bir sıralama algoritmasıdır. Bu, aynı değere sahip elemanların sıralamadan önce ve sonra aynı göreceli sırada kalmayabileceği anlamına gelir.
Örneğin, aşağıdaki dizide, aynı değere sahip iki 5 elemanı (5A ve 5B olarak gösterilen) vardır:
[5A, 3, 5B, 1, 2]
Selection Sort sonrası dizi şu şekilde olabilir: [1, 2, 3, 5B, 5A]
Görüldüğü gibi 5A ve 5B'nin sırası değişmiştir.
Zaman Karmaşıklığı:
Uzay Karmaşıklığı: O(1) - Sabit ek alan kullanır
Avantajları:
Dezavantajları:
Selection Sort, şu durumlarda tercih edilebilir: